﻿Public Class MuhHesapPlani
	Inherits Process

	Public Overrides Sub GenericEvent(ByVal e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Start("Hesap Planı", "Hesap planı üzerinde düzenleme yapmak için Ekle, Değiştir ve Sil butonlarını kullanın.")
				AddList()
				List.AddColumns("[pk]hesapno(Hesap no.;c;100),hesapadi(Hesap adı;l;100%)")
				List.AddButtons("Add.Edit")
				List.SetSQL(Remote, "select * from muhasebe..hesplan order by hesapno")
				List.Populate()
			Case EventType.Add
				Dim Process As New MuhHesapPlaniDetay
				Window.Launch(Process, True)
			Case EventType.Edit, EventType.Activate
				Dim Process As New MuhHesapPlaniDetay
				Process.AddArgument("hesapno", List.SelectedRow("hesapno"))
				Window.Launch(Process, True)
			Case EventType.Delete
				If Not Confirm("Bu hesabı silmek istediğinizden emin misiniz?") Then Exit Sub
				Muhasebe.HesapPlani.Sil(Remote, List.SelectedRow("hesapno"))
		End Select
	End Sub

End Class

Public Class MuhHesapPlaniDetay
	Inherits Process

	Dim hesapno, hesapadi As Input

	Public Overrides Sub GenericEvent(ByVal e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Start("Hesap Bilgileri", "Hesap bilgilerini girin.")
				hesapno = AddText("hesapno", "Hesap no.", "nl;width=8;length=7..7")
				hesapadi = AddText("hesapadi", "Hesap adı", "nl;width=25")
			Case EventType.Shown
				If Arguments.ContainsKey("hesapno") Then
					Rs = Muhasebe.HesapPlani.Oku(Remote, Arguments("hesapno"))
					SetValues("hesapno,hesapadi", Rs("hesapno"), Rs("hesapadi"))
					hesapno.Enabled = False
				End If
				Buttons.Show("Save")
			Case EventType.Save
				If Check("hesapno", Len(hesapno.Get) <> 7, "Geçerli bir hesap numarası girmelisiniz.") Then Return
				If Check("hesapadi", hesapadi.IsEmpty, "Hesap adını girmeniz gerekir.") Then Return
				If hesapno.Enabled Then
					Rs = Muhasebe.HesapPlani.Oku(Remote, hesapno.Get)
					If Not Rs.EOF Then
						If Not Confirm("Bu hesap numarası """ & Rs("hesapadi") & """ tanımı ile zaten önceden girilmiş. Devam etmek istiyor musunuz?") Then Return
					End If
				End If
				Muhasebe.HesapPlani.Kaydet(Remote, Input("hesapno"), Input("hesapadi"))
				Info("Kayıt değişiklikleri gerçekleştirilmiştir.")
				'Caller.Populate()
				Close()
		End Select
	End Sub

End Class
